#pragma GCC optimize(2)
#include <iostream>
#include <algorithm>
#include <cstring>
#include <string>
#include <map>
#include <vector>

using namespace std;
using LL = long long;
/*
we can found sum(n) = (n + 1) * n / 2

so if n is odd we can make
s1: n
s2: 1, 2, 3 ... n - 1
sum(s1): n sum(s2): n*(n - 1) / 2;
so gcd(sum(s1), sum(s2)) = (n - 1) / 2 (n > 1)

if n is even
s1: 1 3 5 7 ... n - 1
s2: 2 4 6 8 ... n
satisfy the condition

*/

int main(){
    freopen("in.txt", "r", stdin);
    freopen("out.txt", "w", stdout);
    ios::sync_with_stdio(false);
    cin.tie(nullptr);


    LL n;
    cin >> n;

    if(n == 1 || n == 2){
        cout << "No" << '\n';
        return 0;
    }

    if(n % 2){
        cout << "Yes" << '\n';
        cout << 1 << " " << n << '\n';
        cout << n - 1 << " ";
        for(int i = 1; i <= n - 1; i ++) cout << i << " ";
        cout << '\n';
    }else{
        cout << "Yes" << '\n';
        cout << n / 2 << " ";
        for(int i = 1; i <= n; i += 2) cout << i << " ";
        cout << '\n';
        cout << n / 2 << " ";
        for(int i = 2; i <= n; i += 2) cout << i << " ";
        cout << '\n';
    }



    return 0;
}